Correctly chain up the finalize implementation.
authorEmmanuele Bassi <ebassi@linux.intel.com>
Mon, 29 Sep 2008 10:54:50 +0000 (10:54 +0000)
committerEmmanuele Bassi <ebassi@src.gnome.org>
Mon, 29 Sep 2008 10:54:50 +0000 (10:54 +0000)
2008-09-29  Emmanuele Bassi  <ebassi@linux.intel.com>

* gdk/x11/gdkinput.c:
(gdk_device_class_init), (gdk_device_finalize): Correctly chain
up the finalize implementation.

svn path=/trunk/; revision=21542

ChangeLog
gdk/x11/gdkinput.c

index 56de2dcfc95a6915a1d514878bf04201cb1b73f7..d688081f72998e66b3b09d9e080839b090ebcc0c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2008-09-29  Emmanuele Bassi  <ebassi@linux.intel.com>
+
+       * gdk/x11/gdkinput.c:
+       (gdk_device_class_init), (gdk_device_finalize): Correctly chain
+       up the finalize implementation.
+
 2008-09-29  Richard Hult  <richard@imendio.com>
 
        Bug 554141 – uninitialized data use/free in gtkclipboard-quartz.c
index 4f2159f5f6344d64d9319e34d489719b26b019bc..7fb2bfeb7665e16b87cec0628f1c301e5da5e4a2 100644 (file)
@@ -66,6 +66,8 @@ _gdk_init_input_core (GdkDisplay *display)
 static void gdk_device_class_init (GdkDeviceClass *klass);
 static void gdk_device_finalize (GObject *object);
 
+static gpointer gdk_device_parent_class = NULL;
+
 GType
 gdk_device_get_type (void)
 {
@@ -99,6 +101,8 @@ gdk_device_class_init (GdkDeviceClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
+  gdk_device_parent_class = g_type_class_peek_parent (klass);
+
   object_class->finalize = gdk_device_finalize;
 }
 
@@ -108,17 +112,20 @@ gdk_device_finalize (GObject *object)
   GdkDevicePrivate *gdkdev = (GdkDevicePrivate *)GDK_DEVICE(object);
 
   if (!GDK_IS_CORE (gdkdev))
-  {
+    {
 #ifndef XINPUT_NONE
-    if (gdkdev->xdevice)
-      XCloseDevice (GDK_DISPLAY_XDISPLAY(gdkdev->display), gdkdev->xdevice);
-    g_free (gdkdev->axes);
+      if (gdkdev->xdevice)
+        XCloseDevice (GDK_DISPLAY_XDISPLAY(gdkdev->display), gdkdev->xdevice);
+
+      g_free (gdkdev->axes);
 #endif /* !XINPUT_NONE */
 
-    g_free (gdkdev->info.name);
-    g_free (gdkdev->info.keys);
-    g_free (gdkdev->info.axes);
-  }
+      g_free (gdkdev->info.name);
+      g_free (gdkdev->info.keys);
+      g_free (gdkdev->info.axes);
+    }
+
+  G_OBJECT_CLASS (gdk_device_parent_class)->finalize (object);
 }
 
 /**